<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>轮回之牢: 这是一个记录开发过程中遇到的bug的文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">轮回之牢<span id="projectnumber">&#160;0.0.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div><div class="header">
  <div class="headertitle"><div class="title">这是一个记录开发过程中遇到的bug的文件 </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="autotoc_md1"></a>
2021年8月18日</h1>
<h2><a class="anchor" id="autotoc_md2"></a>
1、编码问题</h2>
<p >问题：gbk与utf-8编码不一致导致注释不能识别</p>
<p >解决办法：更改文件编码</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md3"></a>
2、全屏报错</h2>
<p >问题：在窗口的构造函数中添加全屏显示后报错</p>
<p >问题原因：窗口大小是1920x1080但是全屏最大允许的大小是1904x1072</p>
<p >解决办法：将窗口设置为固定尺寸1904x1072</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md4"></a>
3、显示逻辑错误</h2>
<p >问题：玩家显示在窗口外部</p>
<p >问题原因：未做边界判定导致玩家飘移、加速度控制变量参数错误</p>
<p >解决办法：取消加速度参数，加入屏幕边界判定</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md5"></a>
4、构造函数初始化问题</h2>
<p >问题：传入的重力值是正值，但使用时却发现变成了负值</p>
<p >问题原因：连续调用委托构造函数判定了两次负值</p>
<p >解决办法：把负值的判定放到父类里面，子类不判定，直接调用</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md6"></a>
总结</h2>
<p >后端实现了玩家在地图内行走的功能，前端实现了界面</p>
<h1><a class="anchor" id="autotoc_md7"></a>
2021年8月19日</h1>
<h2><a class="anchor" id="autotoc_md8"></a>
1、Git合并后文件丢失</h2>
<p >问题：Git使用pull后本地改变丢失</p>
<p >问题原因：强制合并前没有保留自己的代码</p>
<p >解决办法：使用软合并或者先保存本地代码</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md9"></a>
2、全局变量丢失</h2>
<p >问题：从别的文件引用的全局变量丢失</p>
<p >问题原因：include时使用了&lt;&gt;代替了“”双引号</p>
<p >问题来源：冀欢、马笑天</p>
<h2><a class="anchor" id="autotoc_md10"></a>
3、玩家位置问题</h2>
<p >问题：玩家距离障碍物有一段距离就停下来了</p>
<p >问题原因：检测到下一帧碰撞就强制停止玩家前进，实际应该使其恰好不碰撞</p>
<p >解决办法：在单帧内减速并强制移动直至下一帧不碰撞</p>
<p >解决后残留问题：玩家出生在障碍物上会导致死循环</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md11"></a>
4、编译器报错没有moc_开头的某某文件</h2>
<p >问题：如题</p>
<p >问题原因：qmake没有正确配置，因为moc开头的文件是qmake生成的</p>
<p >解决办法：在qmake里面加入对应的ui文件</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md12"></a>
5、静态库链接不上</h2>
<p >问题：如题</p>
<p >问题原因：qmake的LIBS后面多了一个点 . &lt;---&mdash;就是这种英文点</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md13"></a>
6、链接器报错：已经有main函数</h2>
<p >问题：如题</p>
<p >问题原因：sdl库内有main函数，所以本地的main函数必须改名为sdl_main，由它的库回调用户定义的main函数</p>
<p >解决办法：在用户的main函数文件内加入</p>
<div class="fragment"><div class="line"> {c++}</div>
<div class="line">include &quot;sdl.h&quot;</div>
</div><!-- fragment --><p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md14"></a>
7、链接器找不到运算符重载函数</h2>
<p >问题：如题</p>
<p >问题原因：运算符重载不能inline</p>
<p >解决办法：去掉inline</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md15"></a>
8、未知原因崩溃</h2>
<p >问题：如题</p>
<p >问题原因：外部动态库文件放错目录</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md16"></a>
总结</h2>
<p >后端实现梯子、砖块、地图动态视角，前端实现音频播放</p>
<h1><a class="anchor" id="autotoc_md17"></a>
2021年8月20日</h1>
<h2><a class="anchor" id="autotoc_md18"></a>
1、玩家无法在梯子上脱离</h2>
<p >问题：如题</p>
<p >问题原因：没有实现相关的功能</p>
<p >解决办法：分离跳跃和攀爬逻辑，加入单独的跳跃按钮</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md19"></a>
2、玩家跳跃至梯子时无法自动吸附</h2>
<p >问题：如题</p>
<p >问题原因：无法从状态中得知玩家是跳至梯子还是脱离梯子</p>
<p >解决办法：始终置攀爬状态为true除非玩家在攀爬是按下跳跃脱离</p>
<p >问题来源：马笑天，杨佳范</p>
<h2><a class="anchor" id="autotoc_md20"></a>
3、跳跃时没跳上平台卡死循环</h2>
<p >问题：如题</p>
<p >问题原因：参见昨日问题3的残留问题</p>
<p >解决办法：现在只有从上方落到平台上才能站上平台，否则忽略平台碰撞</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md21"></a>
总结</h2>
<p >后端实现了新的跳跃与碰撞逻辑，前端正在音频播放的多线程问题上挣扎</p>
<h1><a class="anchor" id="autotoc_md22"></a>
2021年8月21日</h1>
<h2><a class="anchor" id="autotoc_md23"></a>
总结</h2>
<p >前端实现了完美的音频播放，后端还在地图随机生成上挣扎</p>
<h1><a class="anchor" id="autotoc_md24"></a>
2021年8月22日</h1>
<h2><a class="anchor" id="autotoc_md25"></a>
1、远程仓库拒绝push</h2>
<p >问题：如题</p>
<p >原因：本地未pull，导致版本落后</p>
<p >解决办法：pull后根据需求保留变更，重新push</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md26"></a>
总结</h2>
<p >前端实现了OpenGL显示，后端实现了迷宫化地图生成</p>
<h1><a class="anchor" id="autotoc_md27"></a>
2021年8月23日</h1>
<h2><a class="anchor" id="autotoc_md28"></a>
总结</h2>
<p >前端OpenGL显示优化，后端暂无进度</p>
<h1><a class="anchor" id="autotoc_md29"></a>
2021年8月24日</h1>
<h2><a class="anchor" id="autotoc_md30"></a>
1、父类指针指向子类时，无法得知子类类型</h2>
<p >问题：如题</p>
<p >解决办法：使用反射</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md31"></a>
总结</h2>
<p >工具添加C++实现的反射机制，后端提取前景和后景物体，分开计算逻辑</p>
<h1><a class="anchor" id="autotoc_md32"></a>
2021年8月26日</h1>
<h2><a class="anchor" id="autotoc_md33"></a>
1、人物碰撞逻辑异常</h2>
<p >问题：如题</p>
<p >解决办法：暂时去掉碰撞逻辑（无奈之举）</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md34"></a>
2、帧动画运行时下标越界</h2>
<p >问题：如题</p>
<p >问题原因：传入ID为空未判定</p>
<p >解决办法：判定ID是否为空，再进行操作</p>
<p >问题来源：冀欢</p>
<h2><a class="anchor" id="autotoc_md35"></a>
总结</h2>
<p >前端简易帧动画显示，后端暂无进展</p>
<h1><a class="anchor" id="autotoc_md36"></a>
2021年8月27日</h1>
<h2><a class="anchor" id="autotoc_md37"></a>
1、帧动画长时间运行显示异常</h2>
<p >问题：如题</p>
<p >问题原因：存储图片时没有记录宽高，而是动态获取。</p>
<p >解决办法：记录图片宽高，下次遇到相同ID图片时直接使用</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md38"></a>
总结</h2>
<p >工具实现C++函数装饰器，后端实现怪物类，前端帧动画优化</p>
<h1><a class="anchor" id="autotoc_md39"></a>
2021年8月29日</h1>
<h2><a class="anchor" id="autotoc_md40"></a>
1、图片裁剪错误</h2>
<p >问题：如题</p>
<p >问题原因：减法算反了，裁剪的图片宽高是负数</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md41"></a>
总结</h2>
<p >工具图片裁剪优化</p>
<h1><a class="anchor" id="autotoc_md42"></a>
2021年8月30日</h1>
<h2><a class="anchor" id="autotoc_md43"></a>
1、图片渲染是周围出现白边</h2>
<p >问题：如题</p>
<p >问题原因：放大图片时使用了错误的过滤函数，应该使用Nearest</p>
<p >问题来源：马笑天</p>
<h2><a class="anchor" id="autotoc_md44"></a>
2、动画枚举类修改后动画异常</h2>
<p >问题：如题</p>
<p >问题原因：枚举类不能直接做map的key，因此配置时使用了int，但是编码是硬编码。</p>
<p >解决办法：将硬编码的部分改成枚举向int的强制类型转换</p>
<p >问题来源：冀欢、马笑天</p>
<h2><a class="anchor" id="autotoc_md45"></a>
总结</h2>
<p >前端实现背景以及人物动画效果</p>
<h1><a class="anchor" id="autotoc_md46"></a>
2021年8月31日</h1>
<h3><a class="anchor" id="autotoc_md47"></a>
总结</h3>
<p >前端实现梯子绘制，后端实现按住S向下脱离后景物体</p>
<h1><a class="anchor" id="autotoc_md48"></a>
2021年9月1日</h1>
<h2><a class="anchor" id="autotoc_md49"></a>
1、地图生成与怪物的生成捆绑</h2>
<p >问题：捆绑导致怪物生成异常，容易卡住</p>
<p >问题原因：配置方法问题，未将俩个类型独立</p>
<p >解决方法：更改了配置</p>
<p >问题来源：杨佳范、马笑天</p>
<h2><a class="anchor" id="autotoc_md50"></a>
2、人物乘坐移动块时卡入墙体</h2>
<p >问题：人物站在边缘随移动块的移动强制卡入墙体</p>
<p >问题原因：地图设计问题与碰撞逻辑问题</p>
<p >解决方法：优化地图并增加了逻辑来判断此问题</p>
<p >问题来源：杨佳范、马笑天</p>
<h2><a class="anchor" id="autotoc_md51"></a>
总结</h2>
<p >工具实现json配置地图</p>
<h1><a class="anchor" id="autotoc_md52"></a>
2021年9月2日</h1>
<h2><a class="anchor" id="autotoc_md53"></a>
总结</h2>
<p >后端实现被攻击逻辑，前端实现血条显示</p>
<h1><a class="anchor" id="autotoc_md54"></a>
2021年9月3日</h1>
<h2><a class="anchor" id="autotoc_md55"></a>
1、调用动画时总是返回同一帧</h2>
<p >问题：将OpenGL的绘图逻辑提取出后，调用动画总是返回同一帧</p>
<p >问题原因：使用auto关键字创建变量，实际上创建了类的新对象</p>
<p >解决办法：使用auto&amp;创建引用</p>
<p >问题来源：马笑天</p>
<h1><a class="anchor" id="autotoc_md56"></a>
2021年9月5日</h1>
<h2><a class="anchor" id="autotoc_md57"></a>
1、换机器运行时错误</h2>
<p >问题：用vs编译运行时错误，用Qt+mcvs正常</p>
<p >问题原因：用vs编译时忘记把部分文件加入编译项目中，导致反射生成了空指针</p>
<p >解决办法：重新根据pro文件生成项目</p>
<p >问题来源：冀欢 </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
</small></address>
</body>
</html>
